#include "pthread.h"
#include "stdio.h"
#include "unistd.h"

void *thread_fun(void *arg)
{
    printf("分线程开始执行！\n");
    sleep(3);
}

int main()
{
    // 创建一个线程
    printf("主线程开始执行！\n");
    pthread_t pt1;
    pthread_create(&pt1, NULL, thread_fun, NULL);
    sleep(1);

    // 取消线程
    pthread_cancel(pt1);
    // 等待线程执行
    void *reslut;
    pthread_join(pt1, &reslut);
    // 通过reslut判断线程是否正常结束
    if (reslut == PTHREAD_CANCELED)
    {
        printf("分线程被取消！\n");
    }else
    {
        printf("分线程正常结束！\n");
    }
    
    printf("主线程执行结束！\n");
    return 0;
}